package cn.caskm.souvenirshopsystem.service;

import cn.caskm.souvenirshopsystem.domain.Result;
import cn.caskm.souvenirshopsystem.domain.dto.PageDTO;
import cn.caskm.souvenirshopsystem.domain.po.InstantMessage;
import cn.caskm.souvenirshopsystem.domain.query.InstantMessageQuery;
import cn.caskm.souvenirshopsystem.domain.vo.InstantMessageVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface InstantMessageService extends IService<InstantMessage> {

    /**
     * 发送消息
     */
    Result<Void> sendMessage(InstantMessage message);

    /**
     * 获取聊天记录
     */
    Result<PageDTO<InstantMessageVO>> getChatHistory(Integer senderId, Integer receiverId, Long pageNum, Long pageSize);

    /**
     * 标记消息为已读
     */
    Result<Void> markAsRead(Long messageId);

    /**
     * 获取未读消息数量
     */
    Result<Long> getUnreadCount(Integer userId);

    /**
     * 获取最近聊天列表
     */
    Result<List<InstantMessageVO>> getRecentChats(Integer userId);

    /**
     * 删除消息
     */
    Result<Void> deleteMessage(Long messageId);

}
